import $http from '@/common/api/request.js'
export default {
	state: {
		list: [],
	},
	getters: {
		defaultPath(state){
			return state.list.filter(v=>{
				return v.isDefault==1;
			})
		}
	},
	actions: {
		// 修改地址的方法
		updatePathFn({commit},obj){
			if(obj.item.isDefault){
				commit('clearDefaultPath')
			}
			// 提交修改地址方法
			commit('updatePath',obj)
		},
		// 保存地址的方法
		addPathFn({commit},obj){
			if(obj.isDefault){
				commit('clearDefaultPath')
			}
			
			commit('addPath',obj)
		},
		// 删除地址的方法
		deletePathFn({commit},id){
			uni.showModal({
				content:'确认删除吗？',
				success:()=>{
					$http.request({
						url:'/deleteAddress',
						method:'post',
						header:{
							'content-type': 'application/x-www-form-urlencoded',
							token:true
						},
						data:{
							id:id
						}
					}).then(res=>{
						
						$http.request({
							url: '/selectAddress',
							method:"post",
							header:{
								'content-type': 'application/x-www-form-urlencoded',
								token:true
							},
						}).then((res) =>{
							commit('__initAddress',res)
						}).catch(() => {
							uni.showToast({
								title: '刷新数据失败',
								icon: 'none'
							})
						})
						
					}).catch(()=>{
						uni.showToast({
							title:'请求失败',
							icon:'none'
						})
					})
				}
				
			})
		}
	},
	mutations: {
		// 初始化请求的地址
		__initAddress(state,cartList){
			state.list=cartList
		},
		// 保存地址
		addPath(state,obj){
			state.list.unshift(obj)
		},
		// 修改地址
		updatePath(state,{index,item}){
			for(let key in item){
				state.list[index][key]=item[key];
			}
		},
		// 清除默认地址
		clearDefaultPath(state){
			state.list.forEach(item=>{
				item.isDefault=false
			})
		}
	}
}
